#include <STC15F2K60S2.H>
sbit TX=P1^0;//发射引脚，1发送成功，0发送失败
sbit RX=P1^1;//接收引脚，0接收成功，1接受失败
void Timer0Init(void)		//12微秒@12.000MHz
{
	AUXR &= 0x7F;		//定时器时钟12T模式
	TMOD &= 0xF0;		//设置定时器模式
	//TMOD|=0x04;
	TL0 = 0xF4;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	TF0 = 0;		//清除TF0标志,溢出位
	TR0 = 0;		//定时器0开始计时
}
unsigned char Wave_Recv(void){
	unsigned char ucDist,ucNum=10;
	TX=0;
	TL0 = 0xF4;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	TR0 = 1;		//开始计时
	while(ucNum--){//发送40khz的方波信号
		while(!TF0);
		TX^=1;
		TF0=0;
	}
	TR0 = 0; //定时器关闭
	 TL0 = 0; // 设置定时初值
	 TH0 = 0; // 设置定时初值
	 TR0 = 1;//定时器开启
	while(RX && !TF0); //检测接到信号
	TR0=0;//停止计时
	if(TF0){
		TF0=0;
		ucDist=255;
	}
	else{
		ucDist=((TH0<<8)+TL0)*0.017;
	}
	return ucDist;
}
